<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <button id="btn">按钮</button>
</body>
<script>
  const btn = document.querySelector("#btn")
  const person = {
    name: "lily",
    age: 18,
    sex: "男",
  };

  btn.onclick = function () {
    Reflect.set(person, 'id', 2)
    Reflect.set(person, 'age', 28)
    Reflect.deleteProperty(person, 'sex')
    console.log(person);
  }
  /*
    ES6中，reflect是一个内置的对象，它提供了一组用于操作对象的方法，这些方法可以替代旧的操作
    - 更明确的返回值,Reflect方法通常返回一个布尔值，表示该操作是否成功
    - 更好的异常处理，有的旧的操作失败可能会抛出异常，停止代码执行，但是reflect使用返回值false代表操作异常，不会抛出异常
    - 更多的操作对象的方式
    - 让对象的操作统一化，函数化
  */
</script>

</html>